package com.hg.design.creation.multiton;

import java.util.Date;
import java.util.Random;

public class Die {
    private static Die die1 = new Die();
    private static Die die2 = new Die();

    /**
     *私有的构造函数保证外界无法直接将此类实例化
     *
     */
    private Die() {
    }

    /**
     *工厂方法
     */
    public static Die getInstance(int whichOne) {
        if(whichOne == 1) {
            return die1;
        } else {
            return die2;
        }
    }

    /**
     *投骰子，返回一个在1－6之间的随机数
     */
    public synchronized int dice() {
        Date d = new Date();
        Random r = new Random(d.getTime());
        int value = r.nextInt();//获取随机数
        value = Math.abs(value);//获取随机数的绝对值
        value = value % 6;//对6取模
        value +=1;//由于 value的范围是0－5，所以value+1成为1-6
        return value;
    }
}
